package com.koron.operation.dispatch.service;


import com.koron.operation.dispatch.bean.EquipmentAccidentBean;
import com.koron.operation.dispatch.bean.EquipmentBean;
import com.koron.operation.dispatch.bean.EquipmentHistoryBean;
import com.koron.operation.dispatch.bean.UnitRelationDo;
import com.koron.operation.dispatch.bean.dto.AccidentDto;
import com.koron.operation.dispatch.bean.dto.EquipmentDto;
import com.koron.operation.dispatch.bean.dto.HistoryListDto;
import com.koron.operation.dispatch.bean.dto.UnitSynDto;
import com.koron.operation.dispatch.bean.vo.AffectedLineVo;
import com.koron.operation.dispatch.bean.vo.AffectedTranVo;
import com.koron.operation.dispatch.bean.vo.AffectedUnitVo;
import org.koron.ebs.mybatis.SessionFactory;

import java.util.List;


public interface EquipmentRunService {

    String saveOrUpdate(SessionFactory factory, List<EquipmentBean> bean);

    //基础信息列表
    List<EquipmentBean> queryList(SessionFactory factory, EquipmentDto querBean);

    //状态录入列表
    List<HistoryListDto> queryStatusList(SessionFactory factory, HistoryListDto bean);

    //变更历史列表
    List<HistoryListDto> queryStatusHistoryList(SessionFactory factory, HistoryListDto bean);

    //事故跳闸列表
    List<EquipmentAccidentBean> queryAccidentList(SessionFactory factory, AccidentDto dto);

    //状态变更
    int changeStatus(SessionFactory factory, EquipmentHistoryBean bean);

    //新建跳闸记录
    String saveAccident(SessionFactory factory, EquipmentAccidentBean bean);


    //线路状态汇总
    List<AffectedLineVo> lineAnalysis(SessionFactory factory);

    //机组状态汇总
    List<AffectedUnitVo> unitAnalysis(SessionFactory factory);

    //主变状态汇总
    List<AffectedTranVo> tranAnalysis(SessionFactory factory);

    //获取监控数据库开机日志
    List<UnitSynDto> getUnitStartLogParameter(SessionFactory factory, List<UnitRelationDo> unitrelist);

}
